package cn.darkhorse.core.param;


import cn.darkhorse.entity.BpmnWorkflowParam;

import java.util.Map;

/**
 * 参数分析器
 * @author yuanjun
 * @since 2020/6/3 15:33
 */
public interface IParamParserStrategy {
    /**
     * 根据WorkflowParam进行解析，其中的参数保存在paramValue中
     * @param param WorkflowParam对象
     * @return Map<String, Object>
     */
    Map<String, Object> parse(BpmnWorkflowParam param);

    /**
     * 根据WorkflowParam进行解析, 其中参数需要从表单中取得
     * @param param  WorkflowParam对象
     * @param tClazz 表单类的实例
     * @param form 表单对象
     * @param <T> 表单类
     * @return Map<String, Object>
     */
    <T> Map<String, Object> parse(BpmnWorkflowParam param, Class<T> tClazz, T form,String userName);
}
